home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / Lists.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  8.1 KB  |  294 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Lists.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Lists;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __LISTS__}
  27. {$SETC __LISTS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC ListsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$IFC UNDEFINED __CONTROLS__}
  40. {$I Controls.p}
  41. {$ENDC}
  42. {    Quickdraw.p                                                    }
  43. {        MixedMode.p                                                }
  44. {        QuickdrawText.p                                            }
  45. {    Menus.p                                                        }
  46. {        Memory.p                                                }
  47. {        Events.p                                                }
  48. {            OSUtils.p                                            }
  49.  
  50. {$PUSH}
  51. {$ALIGN MAC68K}
  52. {$LibExport+}
  53.  
  54. CONST
  55.     lDoVAutoscroll                = 2;
  56.     lDoHAutoscroll                = 1;
  57.     lOnlyOne                    = -128;
  58.     lExtendDrag                    = 64;
  59.     lNoDisjoint                    = 32;
  60.     lNoExtend                    = 16;
  61.     lNoRect                        = 8;
  62.     lUseSense                    = 4;
  63.     lNoNilHilite                = 2;
  64.     lInitMsg                    = 0;
  65.     lDrawMsg                    = 1;
  66.     lHiliteMsg                    = 2;
  67.     lCloseMsg                    = 3;
  68.  
  69. {
  70.     Set STRICT_LISTS to 1 to make sure your code 
  71.     doesn't access the list records directly
  72. }
  73. {$IFC UNDEFINED STRICT_LISTS }
  74. {$SETC STRICT_LISTS := 0}
  75. {$ENDC}
  76. {$IFC STRICT_LISTS }
  77.     
  78. TYPE
  79.     ListRef = Ptr;
  80.  
  81.     ListHandle = ListRef;
  82.  
  83. {$ELSEC}
  84.     
  85. TYPE
  86.     ListPtr = ^ListRec;
  87.     ListHandle = ^ListPtr;
  88.  
  89.     ListRef = ListHandle;
  90.  
  91. {$ENDC}
  92.     Cell = Point;
  93.  
  94.     DataArray = PACKED ARRAY [0..32000] OF CHAR;
  95.  
  96.     DataPtr = ^DataArray;
  97.     DataHandle = ^DataPtr;
  98.  
  99.     ListSearchProcPtr = ProcPtr;  { FUNCTION ListSearch(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER; }
  100.     ListClickLoopProcPtr = ProcPtr;  { FUNCTION ListClickLoop: BOOLEAN; }
  101.     ListSearchUPP = UniversalProcPtr;
  102.     ListClickLoopUPP = UniversalProcPtr;
  103.  
  104. {$IFC NOT STRICT_LISTS }
  105.     ListRec = RECORD
  106.         rView:                    Rect;
  107.         port:                    GrafPtr;
  108.         indent:                    Point;
  109.         cellSize:                Point;
  110.         visible:                Rect;
  111.         vScroll:                ControlHandle;
  112.         hScroll:                ControlHandle;
  113.         selFlags:                SInt8;
  114.         lActive:                BOOLEAN;
  115.         lReserved:                SInt8;
  116.         listFlags:                SInt8;
  117.         clikTime:                LONGINT;
  118.         clikLoc:                Point;
  119.         mouseLoc:                Point;
  120.         lClickLoop:                ListClickLoopUPP;
  121.         lastClick:                Cell;
  122.         refCon:                    LONGINT;
  123.         listDefProc:            Handle;
  124.         userHandle:                Handle;
  125.         dataBounds:                Rect;
  126.         cells:                    DataHandle;
  127.         maxIndex:                INTEGER;
  128.         cellArray:                ARRAY [0..0] OF INTEGER;
  129.     END;
  130. {$ENDC}
  131.     ListDefProcPtr = ProcPtr;  { PROCEDURE ListDef(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListHandle); }
  132.     ListDefUPP = UniversalProcPtr;
  133.  
  134. CONST
  135.     uppListSearchProcInfo = $00002BE0; { FUNCTION (4 byte param, 4 byte param, 2 byte param, 2 byte param): 2 byte result; }
  136.     uppListClickLoopProcInfo = $00000011; { FUNCTION : 1 byte result; }
  137.     uppListDefProcInfo = $000EBD80; { PROCEDURE (2 byte param, 1 byte param, 4 byte param, 4 byte param, 2 byte param, 2 byte param, 4 byte param); }
  138.  
  139. FUNCTION NewListSearchProc(userRoutine: ListSearchProcPtr): ListSearchUPP;
  140.     {$IFC NOT GENERATINGCFM }
  141.     INLINE $2E9F;
  142.     {$ENDC}
  143.  
  144. FUNCTION NewListClickLoopProc(userRoutine: ListClickLoopProcPtr): ListClickLoopUPP;
  145.     {$IFC NOT GENERATINGCFM }
  146.     INLINE $2E9F;
  147.     {$ENDC}
  148.  
  149. FUNCTION NewListDefProc(userRoutine: ListDefProcPtr): ListDefUPP;
  150.     {$IFC NOT GENERATINGCFM }
  151.     INLINE $2E9F;
  152.     {$ENDC}
  153.  
  154. FUNCTION CallListSearchProc(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER; userRoutine: ListSearchUPP): INTEGER;
  155.     {$IFC NOT GENERATINGCFM}
  156.     INLINE $205F, $4E90;
  157.     {$ENDC}
  158.  
  159. FUNCTION CallListClickLoopProc(userRoutine: ListClickLoopUPP): BOOLEAN;
  160.     {$IFC NOT GENERATINGCFM}
  161.     INLINE $205F, $4E90;
  162.     {$ENDC}
  163.  
  164. PROCEDURE CallListDefProc(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListHandle; userRoutine: ListDefUPP);
  165.     {$IFC NOT GENERATINGCFM}
  166.     INLINE $205F, $4E90;
  167.     {$ENDC}
  168.  
  169. FUNCTION LNew({CONST}VAR rView: Rect; {CONST}VAR dataBounds: Rect; cSize: Point; theProc: INTEGER; theWindow: WindowPtr; drawIt: BOOLEAN; hasGrow: BOOLEAN; scrollHoriz: BOOLEAN; scrollVert: BOOLEAN): ListHandle;
  170.     {$IFC NOT GENERATINGCFM}
  171.     INLINE $3F3C, $0044, $A9E7;
  172.     {$ENDC}
  173. PROCEDURE LDispose(lHandle: ListHandle);
  174.     {$IFC NOT GENERATINGCFM}
  175.     INLINE $3F3C, $0028, $A9E7;
  176.     {$ENDC}
  177. FUNCTION LAddColumn(count: INTEGER; colNum: INTEGER; lHandle: ListHandle): INTEGER;
  178.     {$IFC NOT GENERATINGCFM}
  179.     INLINE $3F3C, $0004, $A9E7;
  180.     {$ENDC}
  181. FUNCTION LAddRow(count: INTEGER; rowNum: INTEGER; lHandle: ListHandle): INTEGER;
  182.     {$IFC NOT GENERATINGCFM}
  183.     INLINE $3F3C, $0008, $A9E7;
  184.     {$ENDC}
  185. PROCEDURE LDelColumn(count: INTEGER; colNum: INTEGER; lHandle: ListHandle);
  186.     {$IFC NOT GENERATINGCFM}
  187.     INLINE $3F3C, $0020, $A9E7;
  188.     {$ENDC}
  189. PROCEDURE LDelRow(count: INTEGER; rowNum: INTEGER; lHandle: ListHandle);
  190.     {$IFC NOT GENERATINGCFM}
  191.     INLINE $3F3C, $0024, $A9E7;
  192.     {$ENDC}
  193. FUNCTION LGetSelect(next: BOOLEAN; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  194.     {$IFC NOT GENERATINGCFM}
  195.     INLINE $3F3C, $003C, $A9E7;
  196.     {$ENDC}
  197. FUNCTION LLastClick(lHandle: ListHandle): Cell;
  198.     {$IFC NOT GENERATINGCFM}
  199.     INLINE $3F3C, $0040, $A9E7;
  200.     {$ENDC}
  201. FUNCTION LNextCell(hNext: BOOLEAN; vNext: BOOLEAN; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  202.     {$IFC NOT GENERATINGCFM}
  203.     INLINE $3F3C, $0048, $A9E7;
  204.     {$ENDC}
  205. FUNCTION LSearch(dataPtr: UNIV Ptr; dataLen: INTEGER; searchProc: ListSearchUPP; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  206.     {$IFC NOT GENERATINGCFM}
  207.     INLINE $3F3C, $0054, $A9E7;
  208.     {$ENDC}
  209. PROCEDURE LSize(listWidth: INTEGER; listHeight: INTEGER; lHandle: ListHandle);
  210.     {$IFC NOT GENERATINGCFM}
  211.     INLINE $3F3C, $0060, $A9E7;
  212.     {$ENDC}
  213. PROCEDURE LSetDrawingMode(drawIt: BOOLEAN; lHandle: ListHandle);
  214.     {$IFC NOT GENERATINGCFM}
  215.     INLINE $3F3C, $002C, $A9E7;
  216.     {$ENDC}
  217. PROCEDURE LScroll(dCols: INTEGER; dRows: INTEGER; lHandle: ListHandle);
  218.     {$IFC NOT GENERATINGCFM}
  219.     INLINE $3F3C, $0050, $A9E7;
  220.     {$ENDC}
  221. PROCEDURE LAutoScroll(lHandle: ListHandle);
  222.     {$IFC NOT GENERATINGCFM}
  223.     INLINE $3F3C, $0010, $A9E7;
  224.     {$ENDC}
  225. PROCEDURE LUpdate(theRgn: RgnHandle; lHandle: ListHandle);
  226.     {$IFC NOT GENERATINGCFM}
  227.     INLINE $3F3C, $0064, $A9E7;
  228.     {$ENDC}
  229. PROCEDURE LActivate(act: BOOLEAN; lHandle: ListHandle);
  230.     {$IFC NOT GENERATINGCFM}
  231.     INLINE $4267, $A9E7;
  232.     {$ENDC}
  233. PROCEDURE LCellSize(cSize: Point; lHandle: ListHandle);
  234.     {$IFC NOT GENERATINGCFM}
  235.     INLINE $3F3C, $0014, $A9E7;
  236.     {$ENDC}
  237. FUNCTION LClick(pt: Point; modifiers: INTEGER; lHandle: ListHandle): BOOLEAN;
  238.     {$IFC NOT GENERATINGCFM}
  239.     INLINE $3F3C, $0018, $A9E7;
  240.     {$ENDC}
  241. PROCEDURE LAddToCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  242.     {$IFC NOT GENERATINGCFM}
  243.     INLINE $3F3C, $000C, $A9E7;
  244.     {$ENDC}
  245. PROCEDURE LClrCell(theCell: Cell; lHandle: ListHandle);
  246.     {$IFC NOT GENERATINGCFM}
  247.     INLINE $3F3C, $001C, $A9E7;
  248.     {$ENDC}
  249. PROCEDURE LGetCell(dataPtr: UNIV Ptr; VAR dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  250.     {$IFC NOT GENERATINGCFM}
  251.     INLINE $3F3C, $0038, $A9E7;
  252.     {$ENDC}
  253. PROCEDURE LGetCellDataLocation(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListHandle);
  254.     {$IFC NOT GENERATINGCFM}
  255.     INLINE $3F3C, $0034, $A9E7;
  256.     {$ENDC}
  257. PROCEDURE LRect(VAR cellRect: Rect; theCell: Cell; lHandle: ListHandle);
  258.     {$IFC NOT GENERATINGCFM}
  259.     INLINE $3F3C, $004C, $A9E7;
  260.     {$ENDC}
  261. PROCEDURE LSetCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  262.     {$IFC NOT GENERATINGCFM}
  263.     INLINE $3F3C, $0058, $A9E7;
  264.     {$ENDC}
  265. PROCEDURE LSetSelect(setIt: BOOLEAN; theCell: Cell; lHandle: ListHandle);
  266.     {$IFC NOT GENERATINGCFM}
  267.     INLINE $3F3C, $005C, $A9E7;
  268.     {$ENDC}
  269. PROCEDURE LDraw(theCell: Cell; lHandle: ListHandle);
  270.     {$IFC NOT GENERATINGCFM}
  271.     INLINE $3F3C, $0030, $A9E7;
  272.     {$ENDC}
  273. {$IFC OLDROUTINENAMES }
  274. PROCEDURE LDoDraw(drawIt: BOOLEAN; lHandle: ListHandle);
  275.     {$IFC NOT GENERATINGCFM}
  276.     INLINE $3F3C, $002C, $A9E7;
  277.     {$ENDC}
  278. PROCEDURE LFind(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListHandle);
  279.     {$IFC NOT GENERATINGCFM}
  280.     INLINE $3F3C, $0034, $A9E7;
  281.     {$ENDC}
  282. {$ENDC}
  283.  
  284. {$ALIGN RESET}
  285. {$POP}
  286.  
  287. {$SETC UsingIncludes := ListsIncludes}
  288.  
  289. {$ENDC} {__LISTS__}
  290.  
  291. {$IFC NOT UsingIncludes}
  292.  END.
  293. {$ENDC}
  294.